\section{jQuery中的选择符}

jQuery作为JavaScript库，是用来处理网页中的内容，实现特定效果的。要改变网页的内容，首先得选择网页的内容，原生JavaScript对DOM进行操作前，也得通过类似于getElementsByTagName()的方法得到DOM的某个部分。而jQuery在CSS选择符（详见\ref{CSS选择符}）基础上，又添加了一些选择符，使得jQuery的选择符功能非常强大。下面就介绍CSS选择符之外，jQuery新增的常用选择符有：

\begin{description}
	\item [:contains()] 选择包含特定文本内容的所有元素。
	\item [:eq()] 选择节点列表中的第n个元素（起始数字为0），如果n为负值，表示从后往前。:eq()选择符相当于CSS选择符中的:nth-child()、:nth-last-child()。
	\item [:gt()] 选择节点列表中的第n个元素以上的所有元素，如果n为负值，表示从后往前。
	\item [:lt()] 选择节点列表中的第n个元素以上的所有元素，如果n为负值，表示从后往前。
	\item [:has()] 选择至少含有一个指定元素的所有父元素。
	\item [:header] 选择所有的标题元素，比如h1、h2等等。
\end{description}

除了CSS选择符及jQuery扩展的选择符之外，jQuery还提供了一个功能强大的filter()方法，该方法的参数既可以是选择符，还可以使一个函数。作为filter()参数的函数，其返回值必须是布尔值，filter方法会逐一在选择结果中执行函数，最终对结果集进行过滤。

\lstinputlisting{example/jQuery/filter.html}

在这个例子中，我们将一个函数作为参数，传递给filter方法，最终实现了将年龄小于21岁的单元格标记出来的功能。
